#ifndef __ENTITY_3D_HPP__
#define __ENTITY_3D_HPP__

#include <string>
#include "BaseEntity.hpp"

class Mesh3D;
class BoundingBox;
class BoundingSphere;


class Entity3D : public BaseEntity
{
public:
	Entity3D(std::string modelName, std::string textureName);
	Entity3D(char* pDataBuffer, int iBufferSize, std::string textureName);
	~Entity3D();

	virtual void render();

	const Mesh3D*        getMesh() const;
	BoundingBox*         getBBox();
	BoundingSphere*      generateBSV();

	bool                 queryCollision(Entity3D* pCollEntity);
	virtual void         handleCollision();

	void invalidatePositionChange();

private:
	Mesh3D*       m_pMesh;
	std::string   m_texName;
	BoundingBox*  m_pBV;
};

#endif //__ENTITY_3D_HPP__

//EOF
